package service;

import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;

import dao.UserMetaDAO;
import domain.UserMeta;

/**
 * 用户元数据Service接口.
 * <p>
 * 创建日期：2010-07-01<br>
 * 创建人：Xiyt<br>
 * 修改日期：<br>
 * 修改人：<br>
 * 修改内容：<br>
 * 
 * @author Xiyt
 * @version 1.0
 */
public interface UserMetaService {

	/**
	 * 设定用户元数据DAO
	 * */
	public void setUserMetaDao(UserMetaDAO userMetaDao);
	
	/**
	 * 根据条件查询用户元数据列表
	 * @param paramUserMeta 用户元数据条件
	 * @return List 用户元数据列表
	 */
	public List<UserMeta> selectByCriteria(UserMeta paramUserMeta);

	/**
	 * 添加用户元数据
	 * @param userMeta 用户元数据
	 */
	public void insert(UserMeta userMeta);

	/**
	 * 添加用户元数据
	 * @param userId 用户ID
	 * @param map 配置信息
	 */
	@SuppressWarnings("unchecked")
	public void insert(String userId, Map map);

	/**
	 * 修改用户元数据
	 * @Description: 修改用户元数据
	 * @param userMeta 用户元数据
	 */
	public void update(UserMeta userMeta);

	/**
	 * 修改用户元数据
	 * @param userId 用户ID
	 * @param map 配置信息
	 */
	@SuppressWarnings("unchecked")
	public void updateByUserIdAndMetaKey(String userId, Map map);

	/**
	 * 删除用户元数据
	 * @param userMetaId 用户元数据ID
	 */
	public void delete(Integer userMetaId);
	
	/**
	 * 删除用户元数据
	 * @param userId 用户ID
	 */
	public void deleteByUserId(String userId);
	
	/**
	 * 查询用户的收藏夹
	 * @return JSONArray 相册树
	 */
	public JSONArray getFavoriteMenuTree();
	
	/**
	 * 添加快捷菜单
	 * @param userMeta 用户元数据
	 */
	public void addFavoriteMenu(UserMeta userMeta);
	
}
